<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Changes from 2.6 to 3.0: GMime 3.0 Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="GMime 3.0 Reference Manual">
<link rel="up" href="gmime.html" title="Part I. GMime Overview">
<link rel="prev" href="gmime-changes-2-6.html" title="Changes from 2.4 to 2.6">
<link rel="next" href="gmime-resources.html" title="Mailing lists and bug reports">
<meta name="generator" content="GTK-Doc V1.32 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts"></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="gmime.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="gmime-changes-2-6.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gmime-resources.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="gmime-changes-3-0"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle">Changes from 2.6 to 3.0</span></h2>
<p>Changes from 2.6 to 3.0 — Changes made between version 2.6 and version 3.0</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="id-1.2.9.3"></a><h2>Changes from 2.6 to 3.0</h2>
<p>GMimeMessage API changes:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p><code class="function">g_mime_message_get_sender()</code> no longer returns the value of the From header, it now returns an InternetAddressList* containing the parsed address(es) from the Sender header. For the From addresses, use <code class="function">g_mime_message_get_from()</code>.</p></li>
<li class="listitem"><p><code class="function">g_mime_message_get_reply_to()</code> no longer returns a const char*, instead it returns an InternetAddressList* for easier use.</p></li>
<li class="listitem"><p><code class="function">g_mime_message_set_sender()</code> and <code class="function">g_mime_message_set_reply_to()</code> have been removed. You will either need to use the appropriate getter method and then <code class="function">internet_address_list_add()</code> to add a new InternetAddressMailbox or, alternatively, you can use <code class="function">g_mime_message_add_mailbox()</code>.</p></li>
<li class="listitem"><p>GMimeRecipientType has been replaced by GMimeAddressType because it now contains non-recipient-based enum values (SENDER, FROM, and REPLY_TO).</p></li>
<li class="listitem"><p><code class="function">g_mime_message_get_recipients()</code> has been replaced by <code class="function">g_mime_message_get_addresses()</code> which allows you to access the address lists of any address header.</p></li>
<li class="listitem"><p><code class="function">g_mime_message_add_recipient()</code> has been renamed to <code class="function">g_mime_message_add_mailbox()</code> due to the fact that it can now be used to add mailbox addresses to the Sender, From, and Reply-To headers as well.</p></li>
<li class="listitem"><p><code class="function">g_mime_message_set_subject()</code> now takes a charset argument used when encoding the subject into rfc2047 encoded-word tokens (if needed). Use NULL to get the old behavior of using a best-fit charset.</p></li>
<li class="listitem"><p>Removed <code class="function">g_mime_message_get_date_as_string()</code> and <code class="function">g_mime_message_get_date_as_string()</code>. This is unnecessary since this can be done using <code class="function">g_mime_object_get_header()</code> and <code class="function">g_mime_object_set_header()</code></p></li>
</ul></div>
<p>Cryptography related API changes:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p>Renamed GMimeCertificateTrust to GMimeTrust and GMIME_CERTIFICATE_TRUST_NONE to GMIME_TRUST_UNKNOWN.</p></li>
<li class="listitem"><p>Removed <code class="function">g_mime_gpg_context_get_always_trust()</code> and <code class="function">g_mime_gpg_context_set_always_trust()</code>. This can now be accomplished by passing GMIME_ENCRYPT_ALWAYS_TRUST to <code class="function">g_mime_crypto_context_encrypt()</code>.</p></li>
<li class="listitem"><p>Removed <code class="function">g_mime_gpg_context_get_use_agent()</code> and <code class="function">g_mime_gpg_context_set_use_agent()</code>. This should no longer be needed.</p></li>
<li class="listitem"><p>Removed <code class="function">g_mime_gpg_context_get_auto_key_retrieve()</code> and <code class="function">g_mime_gpg_context_set_auto_key_retrieve()</code>.</p></li>
<li class="listitem"><p>Removed <code class="function">g_mime_crypto_context_get_retrieve_session_key()</code> and <code class="function">g_mime_crypto_context_set_retrieve_session_key()</code>. This is now handled by passing GMIME_DECRYPT_EXPORT_SESSION_KEY to the <code class="function">g_mime_crypto_context_decrypt()</code> method.</p></li>
<li class="listitem"><p>GMimeCryptoContext's encrypt, decrypt, and verify methods now all take a flags argument that can enable additional features (see above examples).</p></li>
<li class="listitem"><p><code class="function">g_mime_crypto_context_sign()</code> now takes a boolean 'detach' argument that specifies whether or not to generate a detached signature. To get the old behavior, pass TRUE as the detach argument.</p></li>
<li class="listitem"><p><code class="function">g_mime_crypto_context_decrypt_session()</code> has been merged with <code class="function">g_mime_crypto_context_decrypt()</code> and so the decryot method now takes a session_key argument that is allowed to be NULL.</p></li>
<li class="listitem"><p><code class="function">g_mime_crypto_context_verify()</code> no longer takes a 'digest' argument as it was unused (it was originally meant to be a hint but wasnever really needed).</p></li>
<li class="listitem"><p><code class="function">g_mime_multipart_signed_verify()</code> and <code class="function">g_mime_multipart_encrypted_decrypt()</code> no longer take GMimeCryptoContext arguments. Instead, they instantiate their own contexts based on the protocol specified in the Content-Type header. These methods now also take a flags argument and in the case of the decrypt() method, it now also takes a session_key argument.</p></li>
<li class="listitem"><p>GMimeSignatureStatus and GMimeSignatureErrors have been merged into a single bitfield (GMimeSignatureStatus) which mirrors gpgme_sigsum_t and thus <code class="function">g_mime_signature_get_errors()</code> and <code class="function">g_mime_signature_set_errors()</code> have been removed.</p></li>
<li class="listitem"><p><code class="function">g_mime_multipart_encrypted_encrypt()</code> no longer takes a GMimeMultipartEncrypted argument nor does it return int. Instead, this function now returns a newly allocated GMimeMultipartEncrypted.</p></li>
<li class="listitem"><p><code class="function">g_mime_multipart_signed_sign()</code> no longer takes a GMimeMultipartSigned argument nor does it return int. Instead, this function now returns a newly allocated GMimeMultipartSigned.</p></li>
</ul></div>
<p>Other API changes:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p><code class="function">g_mime_set_user_charsets()</code> and <code class="function">g_mime_user_charsets()</code> have been removed. All encoding API's now have a way to specify a charset to use and all decoder API's take a GMimeParserOptions argument that allows for specifying fallback charsets.</p></li>
<li class="listitem"><p>GMimeObject's prepend_header(), append_header(), set_header(), get_header(), and remove_header() virtual methods have all been removed. They have been replaced by the header_added(), header_changed(), header_removed(), and headers_cleared() virtual methods to allow users to set headers on the GMimeHeaderList directly and still get notifications of those changes.</p></li>
<li class="listitem"><p><code class="function">g_mime_object_new()</code> and <code class="function">g_mime_object_new_with_type()</code> both now take a GMimeParserOptions argument.</p></li>
<li class="listitem"><p><code class="function">g_mime_param_new_from_string()</code> has been replaced by <code class="function">g_mime_param_list_parse()</code> and now takes a GMimeParserOptions argument.</p></li>
<li class="listitem"><p><code class="function">g_mime_content_type_new_from_string()</code> has been replaced by <code class="function">g_mime_content_type_parse()</code> and now takes a GMimeParserOptions argument.</p></li>
<li class="listitem"><p><code class="function">g_mime_content_type_to_string()</code> has been renamed to <code class="function">g_mime_content_type_get_mime_type()</code> and a new function has been introduced called <code class="function">g_mime_content_type_encode()</code> that includes the encoded parameter list.</p></li>
<li class="listitem"><p><code class="function">g_mime_content_type_get_params()</code> has been renamed to <code class="function">g_mime_content_type_get_parameters()</code>.</p></li>
<li class="listitem"><p><code class="function">g_mime_content_disposition_new_from_string()</code> has been replaced by <code class="function">g_mime_content_disposition_parse()</code> and now takes a GMimeParserOptions argument.</p></li>
<li class="listitem"><p><code class="function">g_mime_content_disposition_to_string()</code> has been replaced by <code class="function">g_mime_content_disposition_encode()</code>.</p></li>
<li class="listitem"><p><code class="function">g_mime_content_disposition_get_params()</code> has been renamed to <code class="function">g_mime_content_disposition_get_parameters()</code>.</p></li>
<li class="listitem"><p><code class="function">internet_address_list_parse_string()</code> has been replaced by <code class="function">internet_address_list_parse()</code> and now takes a GMimeParserOptions argument.</p></li>
<li class="listitem"><p>GMimeHeaderIter has been dropped in favour of a more direct way of iterating over a GMimeHeaderList using int indexes.</p></li>
<li class="listitem"><p><code class="function">g_mime_stream_write_to_stream()</code>, <code class="function">g_mime_stream_writev()</code>, and <code class="function">g_mime_stream_printf()</code> now return a gint64.</p></li>
<li class="listitem"><p><code class="function">g_mime_stream_file_new_for_path()</code> has been renamed to <code class="function">g_mime_stream_file_open()</code> and now also takes a GError argument.</p></li>
<li class="listitem"><p><code class="function">g_mime_stream_fs_new_for_path()</code> has been renamed to <code class="function">g_mime_stream_fs_open()</code> and now also takes a GError argument.</p></li>
<li class="listitem"><p><code class="function">g_mime_part_new()</code> now returns a GMimePart with a Content-Type of "application/octet-stream" instead of "text/plain" since there is now a GMimeTextPart who's <code class="function">g_mime_text_part_new()</code> returns a GMimeTextPart with a Content-Type of "text/plain".</p></li>
<li class="listitem"><p><code class="function">g_mime_part_get_content_object()</code> has been renamed to <code class="function">g_mime_part_get_content()</code>.</p></li>
<li class="listitem"><p><code class="function">g_mime_part_set_content_object()</code> has been renamed to <code class="function">g_mime_part_set_content()</code>.</p></li>
<li class="listitem"><p><code class="function">g_mime_parser_get_scan_from()</code> and <code class="function">g_mime_parser_set_scan_from()</code> have been replaced by <code class="function">g_mime_parser_get_format()</code> and <code class="function">g_mime_parser_get_format()</code> which take a GMimeFormat argument.</p></li>
<li class="listitem"><p><code class="function">g_mime_parser_get_from()</code> has been renamed to <code class="function">g_mime_parser_get_mbox_marker()</code>.</p></li>
<li class="listitem"><p><code class="function">g_mime_parser_get_from_offset()</code> has been renamed to <code class="function">g_mime_parser_get_mbox_marker_offset()</code>.</p></li>
<li class="listitem"><p><code class="function">g_mime_parser_construct_message()</code> and <code class="function">g_mime_parser_construct_part()</code> now take a GMimeParserOptions argument.</p></li>
<li class="listitem"><p>Renamed GMimeFilterMd5 to GMimeFilterChecksum.</p></li>
<li class="listitem"><p>Renamed <code class="function">g_mime_multipart_get_preface()</code> to <code class="function">g_mime_multipart_get_prologue()</code> and <code class="function">g_mime_multipart_set_preface</code> to <code class="function">g_mime_multipart_set_prologue</code>.</p></li>
<li class="listitem"><p>Renamed <code class="function">g_mime_multipart_get_postface()</code> to <code class="function">g_mime_multipart_get_epilogue()</code> and <code class="function">g_mime_multipart_set_postface()</code> to <code class="function">g_mime_multipart_set_epilogue()</code>.</p></li>
<li class="listitem"><p>Updated <code class="function">g_mime_object_write_to_stream()</code> to take a GMimeFormatOptions argument.</p></li>
<li class="listitem"><p>Split GMimeFilterCRLF into GMimeFilterDos2Unix, GMimeFilterUnix2Dos and GMimeFilterSmtpData.</p></li>
</ul></div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.32</div>
</body>
</html>